Installer-Kurs

von
André Wyrwa

1. Einführung, Überblick, Grundlagen

Der Commodore-Installer wurde einst entwickelt, um den Programmierern eine standardisierte Basis für das Schreiben von Scripts zu geben, mit denen der User ihre Produkte auf Festplatte installieren kann.

Dies hat gleich zwei Vorteile: den Prgrammierern vereinfacht es das Schreiben solcher Scripts und der User muß sich nicht bei jedem Programm mit einer anderen Form von Installations-Programm oder unkonfortablem DOS-Script herumschlagen.

Wie vielseitig der Commodore-Installer dabei ist, zeigen sowohl die Vielzahl von Installer-Scripts zu den einzelnen Programmen, als auch einige Spielereien, wie ein auf dem Installer basierendes Adventure und ähnliches. Der Installer hat sich auf dem Amiga durchgesetzt, von einer guten Software erwartet man geradezu, daß sie ein Installer-Script mitliefert.

Dieser Kurs soll einen Einblick in die Sprache des Installers geben und es somit jedem ermöglichen, eigene Scripts für seine Produkte zu schreiben. Obwohl er so konzipiert sein soll, daß auch jemand, der noch nie programmiert hat, danach solche Scripts schreiben kann (wobei allerdings ein gewisses Grundverständnis des Amiga-Betriebssystems und der Workbench vorausgesetzt wird), werden in den letzten beiden Kursteilen Dinge genannt werden, die auch für solche User interessant sein könnten, die bereits Erfahrungen mit dem Installer haben.

Der Kurs basiert auf meinen persönlichen Erfahrungen, die ich sowohl beim Lesen und Schreiben einiger Anwendungen für den Installer gewonnen habe, als auch auf der im Paket des Installer V43.3 enthalten englischen Anleitung von Loren Wilton. Das beigefügte StyleGuide ist eine direkte - allerdings kommentierte - Übersetzung des entsprechenden Abschnitts in dieser Anleitung.

Der Kurs bezieht sich übrigens auf die V43.3, diese sollte also vorhanden sein.

Hier eine kurze Übersicht über die Inhalte der einzelnen Kursteile:

  1. Einführung, Überblick, Grundlagen
  2. Kommunikation mit dem User, grundlegende Kommandos
  3. Dateioperationen
  4. weiterführende Funktionen und Statements
  5. Scriptoptimierung, Lokalisierung
  6. Tricks für Fortgeschrittene, Tools

Aber genug der Vorrede, beginnen wir mit dem Wesentlichen.

Die Sprache des Installers ist keine vollwertige Programmiersprache, sie ist nicht dazu konzipiert, komplexe Anwendungen zu schreiben. Deshalb darf man auch nicht erwarten, daß man den Funktionsumfang anderer Sprachen geboten bekommt. Aber gerade die Beschränktheit des Installers ist seine Stärke, denn dadurch ist das Schreiben von Scripts sehr einfach.

Zunächst einmal soll auf den Ablauf der Programmausführung eingegangen werden. Beim Start des Installers, der normalerweise über die Workbench erfolgt, werden zunächst die Tooltypes, die beim Aufruf übergeben wurden, ausgelesen, die wichtige Informationen zur Abarbeitung beinhalten können.

Desweiteren wird natürlich das Script gelesen und vorcompiliert, also in eine Sprache übersetzt, die der Installer dann leichter interpretieren kann. Außerdem hat dies den Vorteil, daß Syntax- und strukturelle Fehler noch vor Abarbeitung des Scripts erkannt werden können. Ist alles glatt gegangen, präsentiert der Installer im Regelfall die beiden Startup-Seiten.

Dort kann der User das sogenannte User-Level wählen, das seinen Kenntnisgrad repräsentieren soll, eine sehr wichtige Komponente, die erheblichen Einfluß auf die Abarbeitung des Scripts hat. Ist dies geschehen, können noch die Optionen für die Art der Protokollierung und ob das Script wirklich abgearbeitet oder nur durchgetestet (pretend-mode) werden soll. Sind diese beiden Seiten überwunden, wird mit der Abarbeitung des Scripts fortgefahren.

Und damit kommen wir zur eigentlichen Sprache des Installers.

Die Sprache gliedert sich in Funktionen, Statements, und Variablen. Wer andere Sprachen kennt, dem fällt auf, daß ich keine Operatoren erwähnte. Dies liegt daran, daß diese hier wie Funktionen behandelt werden.

Variablen funktionieren wie Schubladen, in denen man eine Information ablegen kann. Ähnlich ARexx verzichtet der Installer weitestgehend auf eine spezielle Formatierung der Variablen. Er unterscheidet jedoch zwischen INTEGER- und STRING-Variablen. Zur Konvertierung zwischen diesen beiden Typen dienen die Funktion (CAT ) und das Statement (SET ), wir werden darauf eingehen, wenn wir diese betrachten. Desweiteren kennt der Installer bisher nur globale Variablen. Für die Namen der Variablen besteht nur die Einschränkung, daß sie keine Basiselemente der Sprache enthalten dürfen und mittels Leerstellen abgegrenzt sein müssen (genaueres im StyleGuide).

Zuletzt sei noch erwähnt, daß der Installer einige vordefinierte @{"Variablen" link Inst-Var} zur Verfügung stellt.

Damit sind wir auch schon bei den Funktionen. An Funktionen können Parameter übergeben werden die sie zu je einem Ergebniswert verarbeiten.

Eine Funktion hat immer das Schema (FUNKTION parameter parameter ...).

Der Ergebniswert ersetzt bei der Ausführung sozusagen die Funktion. So kann man die Variable #var mit einem Funktionsergebnis belegen, indem man folgende Zeile schreibt:

(SET #var (FUNKTION parameter ...)).

(SET ) selbst ist wie bereits erwähnt ein Statement. Obwohl das primäre Anliegen von Statements nicht die Rückgabe von Ergebniswerten ist, liefern diverse Statements verschiedene sekundäre Ergebnisse, die man in einfachen Scripts kaum brauchen wird, die aber in aufwendigeren Fällen oder bei gezielter Fehlerüberwachung eine Rolle spielen. Dies können Wahrheitswerte, - also 0 für falsch oder 1 für wahr - sein, mit denen kontrolliert werden kann, ob die Operation geklappt hat. Es gibt aber auch andere Fälle, wie beispielsweise bei (SET ).

Um diese drei Kategorien nun noch zu einem interpretierbaren Sourcecode zu verbinden, bedarf es einiger sprachlicher Grundelemente, die hier beispielhaft aufgezählt werden sollen...

    dezimale Integer-Zahl:      `5', `32769', `-3'

    hexadezimale Integer-Zahl:  `$a000', `$FB'

    binäre Integer-Zahl:        `%0010010', `%11'

    (Fließkommazahlen kennt der Installer nicht.)

    Strings:                    `"Hello"', `'Hello''

    Symbole:                    `#x', `**var**', `P_Prozedur',
    (Var.- und Proz.-Namen)     `@interne-variable'

    Kommentare:                 ;dies ist ein Kommentar
    (werden durch ; eingeleitet)

Außerdem spielen runde Klammern eine große Rolle, die Kommandos von restlichem Code abgrenzen und zur Festlegung von Prioritäten bei der Programmausführung dienen (wie mathematische Klammern).

Und dann sind da freilich noch die Leerstellen, Tabulatoren und Zeilenumbrüche, sogenannter "Whitespace", der einfach dazu da ist, Symbole und Befehle voneinander zu trennen und natürlich zur übersichtlichen Gestaltung des Codes benutzt werden sollte.

Nachdem ich die grundlegenden Elemente im allgemeinen benannt habe, wäre der nächste Schritt die konkrete Einführung in die Kommandos, so daß erste einfache Scripts entstehen können und mit dem User in Interaktion getreten werden kann, was ja eine wesentliche Aufgabe des Installers ist.

Dem wollen wir uns aber erst in der nächsten Ausgabe widmen, bis dahin sollten Sie schonmal einen Blick ins StyleGuide, auf die Tooltypes, sowie die Variablen werfen.


Prev Inhaltsverzeichnis Next
©`98Der AmZeiger